Шаг 12 - Кодовая страница DBF.

Visual FoxPro отображает данные таблицы в соответствии с кодовой страницей. По умолчанию это текущая кодовая страница Windows. Однако Вы можете принудительно указать кодовую страницу, используемую по умолчанию, в конфигурационном файле (CONFIG.FPW).

Кодовая страница прописывается в заголовке таблицы при создании и проверяется FoxPro при открытии. Но бывают случаи, когда кодовая страница нулевая. Нулевую кодовую страницу требуют и некоторые старые программы, которые по тем или иным причинам до сих пор используются.

Так вот если кодовая страница нулевая, то при открытии таблицы FoxPro предложит ее выбрать:

12_1.gif (6028 b)

Такое может также случиться, если таблица была создана старой версией FoxPro или того хуже Clipper. При выборе новой кодовой страницы (Select) она пропишется в заголовок, и в соответствии с ней будут отображаться данные. Если нажать Cancel, кодовая страница останется без изменения, но с отображением текста могут быть проблемы.

12_2.gif (5477 b)

В ходе работы программы использование такого диалога не всегда удобно, да и может повергнуть в шок неопытного пользователя Вашей программы.

Как можно обойти это?

Кодовую страницу легко прописать вручную при наличии старых добрых DOS'овых средств. Для этого нужно просто заменить соответствующий байт.

12_3.gif (6293 b)

Можно построить свою программу исключительно на использовании SQL, тогда кодовая страница вовсе не тронется, но возможно придется оперировать функциями OEMTOANSI() и ANSITOOEM() для правильного отображения текста.

Ну и наконец разработчики Microsoft думали об этом. Есть программа cpzero, которая меняет кодовую страницу (лежит в каталоге установки FoxPro ..\Tools\Cpzero). В этом случае ее нужно добавить в проект и в качестве параметра передавать номер кодовой страницы, который надо установить:

do cpzero with accounts, 866

Таким образом, проделывая такой трюк в программе до нескольких раз, можно достичь определенных результатов :-)

Вот, пожалуй, и все.


Автор Клементьев В.А.
Hosted by uCoz